package org.vincen.helloworld.rubbish;

/**
 * 题目：一球从100米高度自由落下，每次落地后反跳回原高度的一半；再落下，求它在 第10次落地时，共经过多
 * 少米？第10次反弹多高？ 
 * @param args
 */
public class R20111028 {

	public static void main(String[] args) {
		double j9 = ballJump(9, 100);
		double j10 = ballJump(10, 100);
		double j = j10 - j9;
		j = j / 4;
		System.out.println(j10);
		System.out.println(j);
	}
	
	/**
	 * @param n 第几次落地
	 * @param distance 第一次下落时，球离地距离
	 * @return 第n次落地时，球经过的距离
	 */
	public static double ballJump(int n, double distance) {
		double summary = 0;
		if (n == 1){
			return distance;
		} else {
			summary = (Math.pow(2, n - 1) - 1) / (Math.pow(2, n - 2)) * 100;
		}
		return summary + distance;
	}
}
